Noon Application programs, operating systems, libraries, symbol files, packages, and many other useful digital artifacts can each be viewed as the output of a software build process. In a commercial or institutional development environment or production environment, the sheer size of the artifacts that are produced or used during one or more builds can be immense. Some commercial software vendor development teams, for example, produce several petabytes of raw output in a single day. For comparison, in 2012 the U.S. Library of Congress had about 3 petabytes of digital collections.
From a developer's point of view, the build output is often organized into files that are stored in a hierarchy of directories in a file system. An underlying storage system which helps implement the file system may break file contents into chunks or blocks that are smaller than a file. Then the chunks or blocks are individually stored, along with information about which chunks or blocks belong to which file or files. Different files which share some identical content may sometimes be stored in less space than would be needed to keep a separate complete copy of each file, by keeping only a single copy of a chunk or block whose content is shared by two or more files.